The four flows
In, out & on the record
PULLS FROM
Live PURE data via read RPCs — listings, dictionary, board, deals, memory, crons.
WEB SEARCH
Anthropic native web_search — live web at query time, not a stale index.
WRITES TO
v1: two gated actions only — board tickets + run-cron. Everything else read-only.
LOGS
Every gated call to audit_log + tamper-evident chain; runs, comms, errors, sessions.
Inputs
What Poppy pulls from — data sources
Each read tool maps to a SECURITY DEFINER RPC over a live table. Reads run instantly and are free (no approval).
| Source | Via RPC | Detail | Freshness |
|---|---|---|---|
| MLS listings | mcp_search_listings | listings — NTREIS via RETS only (1.49M rows, 329 TX counties; 81k active) | Nightly RETS sync · 2h SLA Shattique |
| Dictionary | mcp_dict_lookup | pure_dictionary — 219 canon terms, PureGuard-enforced | Live; broadcast ~60s |
| Work board | mcp_board_list | pure_board — tickets by status / lane | Live |
| Transactions | mcp_deal_read | deals + checklist by id / address | Live |
| Memory | mcp_memory_get | pure_memory — 216 canon/rule keys | Live; pulse ~60s |
| Cron health | mcp_cron_list_chat | 34 jobs + 24h success/fail + failure streak | Live |
Reach is intentionally narrow in v1: these 6 sources only. The wider platform (people graph, comms log, CDA/books, referrals, surfaces registry, 1.49M-row media/meta) is reachable through the MCP fleet but not yet wired into Poppy's chat brain — that's v2.
External knowledge
The web-search engine & its freshness
ENGINE
- Anthropic native server tool web_search_20250305, wired into the chat fn with max_uses: 5 per reply.
- Anthropic runs the search + page reads server-side and feeds results back into Claude's answer; the fn surfaces citations (v2 shell renders them as chips).
- Resilience: if a model/version rejects web search, the fn retries once without it.
FRESHNESS
- Results reflect the current web when asked — not a fixed snapshot or cached index.
- Separate from the model's training cutoff (older); web search is how Poppy answers current questions.
- Used for external/world info; internal facts always prefer live PURE data over the web.
Outputs
Where Poppy writes & saves — gated
In v1 Poppy can write in exactly two ways, and both require a human approval card. She never writes silently.
| Write | Destination | Via RPC | Gate |
|---|---|---|---|
| File a ticket | pure_board (auto-routes via personas + notify) | mcp_board_dispatch | approval card |
| Run a cron now | executes the job its own run logs | mcp_cron_run_now | approval card |
Conversation storage (honest): v1 chat history is held client-side (the last ~20 turns sent up per request; persisted in the browser). There is no server-side per-user Poppy memory yet — that's a v2 addition (poppy_memory + pure_chat_workspaces per brokerage).
The record
What is logged & where
Writes and system activity are recorded across purpose-built tables. The audit trail is tamper-evident.
| Log | Table | Captures |
|---|---|---|
| Action audit | audit_log | Every gated/MCP call — who, what, args, scope, when |
| Tamper-evidence | pure_audit_chain | Hash-chained audit + daily trustseal-anchor |
| Job & cron runs | pure_job_runs · autopilot_log · pure_cron_audit | Machine queue + autopilot + cron execution |
| Verifier verdicts | qa_runs | Every QA/verification outcome |
| Comms | comm_log · pure_comms_log · pure_optout_log | Email/SMS/notify sends + opt-outs |
| Errors | pure_error_log | Edge-function + runtime errors |
| Sessions | pure_session_log | Auto session capture (lane, operator, date) |
| Verified capture | vc_events | Verified-capture audit events |
| Poppy system edits | poppy_edit_log · poppy_lifecycle | Every change to Poppy + version milestones (this workstream) |
Tracked over time
Data flow by version
The living ledger — each version's I/O footprint. We add a column as Poppy evolves.
| Flow | v1 — live now | v2 — next | v3+ — beyond |
|---|---|---|---|
| Pulls from | 6 read sources (listings, dict, board, deals, memory, crons) | Full MCP fleet, hat-scoped (people, comms, CDA, referrals, surfaces, enriched feeds) | Embeddings retrieval across 282 tables + connectors |
| Web search | Anthropic web_search, 5/turn, citations | + web_fetch deep reads; source-pinned citations in UI | Blended web + internal retrieval ranking |
| Writes to | 2 gated: board ticket, run cron | Many gated fleet writes (lead, comm, calendar, books) per hat | Multi-step autonomous runs (Poppy runner) + gated deploy |
| Memory | Client-side history only | poppy_memory per-user/deal + pure_chat_workspaces | Long-term semantic memory + summarization |
| Logging | audit_log + chain; shared run/comms/error logs | + poppy_edit_log on every Poppy change; per-instance audit | Per-user usage + spend metering dashboards |
Tracked in canon key poppy.data_flow and surfaced in the Control Center. Companions: v1 System of Record · Foundation · Access Map.